iT邦幫忙

2025 iThome 鐵人賽

0
Cloud Native

駕馭商用容器叢集,汪洋漂流術系列 第 31

【Day 31】 實現 OCP Observability - Istio 搭配 Kiali

  • 分享至 

  • xImage
  •  

前言

當我們在 OpenShift 或 Kubernetes 上導入 Service Mesh (Istio),除了能做流量治理 (Traffic Management),另一個重要的價值就是 可觀測性 (Observability)

簡單來說,Service Mesh 幫我們「自動」收集到 微服務之間的網路資料,再透過 Kiali、Prometheus、Grafana 等工具,把這些資料變成「可視化的架構圖、度量數據、警示系統」。

今天要來聊聊三個關鍵角色:

  • Istio:流量攔截與 Telemetry 資料來源
  • Kiali:拓樸圖與流量監控的 UI
  • Observability Stack:Prometheus、Grafana、Jaeger,幫我們解鎖更深的監控能力

什麼是 Istio Observability

Istio 在每個 Pod 旁邊會自動注入一個 sidecar (Envoy proxy)。這些代理會自動收集:

  • 請求流量 (Request)
  • 延遲 (Latency)
  • 錯誤率 (Error Rate)
  • 來源/目的服務 (Service-to-Service Traffic)

這些資料會被傳送到 Prometheus,並且可以被 KialiGrafana 視覺化。

👉 好處:不用改應用程式的程式碼,就能得到全套的監控指標!


Kiali:你的 Service Mesh 地圖

https://ithelp.ithome.com.tw/upload/images/20250919/20130149h87sASXehh.png

(示意圖來源:Kiali 官方網站)

  • Kiali 提供:
    • 服務拓樸圖 (Service Graph):一眼就能看出誰在呼叫誰、流量大小、錯誤率。
    • 健康狀態 (Health View):用紅綠燈顯示服務是否健康。
    • 流量細節 (Traffic Detail):顯示平均延遲、成功率、HTTP 錯誤碼分佈。
    • 配置檢查 (Istio Config Validation):協助檢查 VirtualService、DestinationRule 等設定是否有問題。
  • 在 OCP 中安裝 Istio (Service Mesh Operator) 之後,只要開啟 kiali Route,就能進入這個 UI。

Observability Stack:Prometheus / Grafana / Jaeger

  • 光有 Kiali 還不夠,Istio 的觀測功能背後還有一整套工具鏈:
    • Prometheus:收集 Envoy 代理的 metrics
    • Grafana:提供監控儀表板,例如流量延遲、QPS、失敗率
    • Jaeger:分散式追蹤 (Distributed Tracing),能幫你看到一個 request 從 Service A → B → C → DB 的完整時間線
  • 這些元件加起來,就能實現 「三大支柱」Observability
    1. Metrics(數據指標:QPS、Latency、Error Rate)
    2. Logs(日誌:應用程式與 Proxy 日誌)
    3. Tracing(追蹤:跨服務的請求路徑)

實際操作:觀測流量

  1. 部署範例應用 (Bookinfo)
    oc apply -f https://raw.githubusercontent.com/istio/istio/release-1.20/samples/bookinfo/platform/kube/bookinfo.yaml
    
  2. 打開 Kiali
    • 進入 OCP Web Console → Installed Operators → Service Mesh Control Plane → kiali → 打開 Route
    • 在 Graph 視圖裡,可以看到 productpage → reviews → ratings → details 的流量路徑
  3. 監控流量健康狀態
    • 在 Kiali 的 Traffic Graph 會顯示:成功率 100%、錯誤率 0%
    • 刻意製造錯誤(例如關掉 ratings Pod),Kiali 會立刻顯示紅色警告

總結

  • 透過 Istio 與 Kiali,我們得到一個「零侵入」的觀測平台:
    • 不用改程式 → 就能監控微服務之間的流量
    • 一張拓樸圖 → 清楚顯示 Service 依賴關係與健康狀態
    • 整合 Observability 工具 → Prometheus、Grafana、Jaeger 提供完整的 Metrics/Logs/Tracing
  • 在微服務架構下,Observability 是必須品,而 Istio + Kiali 正好給了我們一套現成解法。
  • 雖然已經湊滿三十篇,但還是會陸續更新,因為前面只能算是大概掃過一輪菜單而已。

上一篇
【Day 30】 Kafka 與 Confluent:從開源訊息串流到商業平台的進化
系列文
駕馭商用容器叢集,汪洋漂流術31
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言